package com.ecommerce.user.service;

import com.ecommerce.common.core.ApiResult;
import com.ecommerce.common.core.PageResult;
import com.ecommerce.user.dto.*;

/**
 * 用户服务接口
 */
public interface UserService {

    /**
     * 用户注册
     */
    ApiResult<UserInfoResponse> register(UserRegisterRequest request);

    /**
     * 用户登录
     */
    ApiResult<String> login(UserLoginRequest request);

    /**
     * 获取用户信息
     */
    ApiResult<UserInfoResponse> getUserInfo(Long userId);

    /**
     * 更新用户信息
     */
    ApiResult<UserInfoResponse> updateUserInfo(Long userId, UserUpdateRequest request);

    /**
     * 修改密码
     */
    ApiResult<Void> changePassword(Long userId, ChangePasswordRequest request);

    /**
     * 分页查询用户
     */
    ApiResult<PageResult<UserInfoResponse>> pageUsers(UserQueryRequest request);

    /**
     * 禁用/启用用户
     */
    ApiResult<Void> updateUserStatus(Long userId, Integer status);
}
